package top.xiangqifu.springboot2_auth.service;

import top.xiangqifu.springboot2_auth.base.BaseDataResult;
import top.xiangqifu.springboot2_auth.base.BaseResult;
import top.xiangqifu.springboot2_auth.entity.AuthInfo;
import top.xiangqifu.springboot2_auth.entity.TbAuthUser;
import top.xiangqifu.springboot2_auth.entity.TbAuthUserInfo;
import top.xiangqifu.springboot2_auth.vo.PwdVo;
import top.xiangqifu.springboot2_auth.vo.UserVo;

public interface AuthService {


    /**
     * 获取用户信息
     * @return 操作结果
     * @throws Exception 异常处理
     */
    BaseDataResult<UserVo> queryUser() throws Exception;

    /**
     * 注册用户信息
     * @param userVo 储存用户对象和用户附加对象的类
     * @return 操作结果
     * @throws Exception 异常处理
     */
    BaseResult<String> reg(UserVo userVo) throws Exception;

    /**
     * 处理权限访问
     * @return
     */
    boolean checkAuth();

    /**
     * 登入用户信息
     * @param user 用户对象
     * @return 操作结果
     */
    BaseResult login(TbAuthUser user);

    /**
     * 修改密码
     * @param pwdVo 储存旧密码和新用户对象的类
     * @return 处理结果
     */
    BaseResult updatePwd(PwdVo pwdVo);

    /**
     * 附加用户信息修改
     * @param userInfo 前端传入的用户信息
     * @return 操作结果
     */
    BaseResult<TbAuthUserInfo> update(TbAuthUserInfo userInfo);
}
